main() {
  // 1. 把匿名函数作为参数传递
  testCallback((String data) {
    print('匿名函数 $data');
  });

  // 2. 定义一个函数，把函数作为参数传递
  void fn(String data) {
    print('fn $data');
  }

  testCallback(fn);

  // 3. 定义一个函数，把函数作为参数传递
  void Function(String data) fn2 = (String data) {
    print('fn2 $data');
  };
  testCallback(fn2);
}

// 回调函数：把一个函数作为参数传递给另一个函数，在另一个函数中调用这个函数
// ArkTS 写法：(data:string) => void
// Dart  写法：void Function(String data)
// void testCallback(void Function(String data) callback) {
  void testCallback(callback) {
  // 调用回调函数，回传数据
  callback('回传的数据');
}

